import { createApp } from 'vue'
import App from './App.vue'
import router from './router/index.js'
import 'font-awesome/css/font-awesome.min.css'
// import './assets/css/global.css'
import axios from 'axios'
import qs from 'qs'
import {
  getCurDate,
  setSessionStorage,
  getSessionStorage,
  removeSessionStorage,
  setLocalStorage,
  getLocalStorage,
  removeLocalStorage,
} from './common.js'

// 设置 axios 的基础 url 部分
axios.defaults.baseURL = 'http://123.57.94.78:8080/elm'

const app = createApp(App)

// 将 axios 挂载到 Vue 实例上，使用时就可以 this.$axios 这样使用了
app.config.globalProperties.$axios = axios
app.config.globalProperties.$qs = qs
app.config.globalProperties.$getCurDate = getCurDate
app.config.globalProperties.$setSessionStorage = setSessionStorage
app.config.globalProperties.$getSessionStorage = getSessionStorage
app.config.globalProperties.$removeSessionStorage = removeSessionStorage
app.config.globalProperties.$setLocalStorage = setLocalStorage
app.config.globalProperties.$getLocalStorage = getLocalStorage
app.config.globalProperties.$removeLocalStorage = removeLocalStorage

router.beforeEach(function (to, from, next) {
  let user = sessionStorage.getItem('user')
  // 除了登录、注册、首页、商家列表、商家信息之外，都需要判断是否登录
  if (
    !(
      to.path == '/' ||
      to.path == '/index' ||
      to.path == '/businessList' ||
      to.path == '/businessInfo' ||
      to.path == '/login' ||
      to.path == '/register'
    )
  ) {
    if (user == null) {
      router.push('/login')
      // location.reload();
    }
  }
  next()
})

app.config.globalProperties.routerAppend = (path, pathToAppend) => {
  return path + (path.endsWith('/') ? '' : '/') + pathToAppend
}

app.use(router)

app.mount('#app')